package leetcode.todo

import kotlin.math.min

//https://leetcode.com/problems/minimum-size-subarray-sum/
/**
Given an sort.getArray of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead.

Example:

Input: s = 7, nums = [2,3,1,2,4,3]
Output: 2
Explanation: the subarray [4,3] has the minimal length under the problem constraint.
Follow up:
If you have figured out the O(n) solution, try coding another solution of which the time complexity is O(n log n).
 */
fun main(args: Array<String>) {

}

fun minSubArrayLen(s: Int, nums: IntArray): Int {


    var left = 0

    var right = left

    var sum = 0
    var min = nums.size
    while (right < nums.size) {
        if (sum < s) {
            sum += nums[right]
            if (sum == s) {

                if (right - left < min) {
                    min = right - left
                }
                left++
            }

            right++
        }
    }

    return 0
}